Implementing JTAG compliant devices on integrated LLW circuits (ICs) is an industry trend. The Institute of Electrical and Electronics Engineers, Inc. (IEEE) publishes a variety of specifications, such as the IEEE 1149.1 standard, published in 1990, which is hereby incorporated by reference in its entirety. An identification (ID) code is an optional instruction in the IEEE 1149.1 standard which requires a device ID (i.e., a 32-bit register). The IEEE standard 1149.1 permits implementation of a single device ID, while remaining in compliance with the JTAG specification.
Referring to FIG. 1, a block diagram of a circuit 10 illustrating a conventional JTAG system is shown. The circuit 10 comprises a logic circuit 12, a multiplexer 14 and a flip-flop 16. The multiplexer 14 has an input 18 that receives the signal from the logic circuit 12 and an input 20 that receives the signal S1. The logic circuit 12 is configured to present either a “1” or a “0” to the multiplexer 14 and cannot be changed. The logic block 12 limits functionality of the JTAG system 10.
The multiplexer 14 also has an input 22 that receives a signal SHIFT. The signal SHIFT selects either the signal received at the input 18 (“0” or “1”) or the signal S1 received at the input 20 to be presented to an input 24 of the flip-flop 16. The flip-flop 16 also has a clock input 26 that receives a clock signal CLK. The flip-flop 16 has an output 28 that presents an output signal S0.
When a design is configured to target a single device, the device is assigned an unique device ID. The IEEE 1149.1 specification describes how to implement the unique device ID in a JTAG device. When one design is configured to target multiple devices, the same metal options and bond options are implemented as when targeting a single device. The metal options and bond options are generally considered hard coded.
The logic device 12 is hard coded. Additionally, the hard coded logic block 12 is implemented to provide the device ID. The hard coded device ID logic block 12 (using-metal option or bond options) can not be changed after the device 12 has been fabricated. Hard coded device IDs cannot be used in designs which provide multiple configurations using mark options (i.e., no metal options/bond options). Mark inputs can be implemented to provide a configurable device ID, while metal options/band options provide a permanent non-configurable device ID.
Typically, metal options or bond options are used to configure a single design. Conventional JTAG systems implement the same options (metal or bond) to code the ID registers. Device IDs, once hard coded into the ID registers inside JTAG devices, cannot be changed after the device has been fabricated. Conventional hard coded device IDs are not applicable for designs that provide multiple configurations using mark options (no metal options/bond options).